# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# NOTE: This file is auto generated by the elixir code generator program.
# Do not edit this file manually.

defmodule GoogleApi.AndroidManagement.V1.Model.GenerateEnterpriseUpgradeUrlRequest do
  @moduledoc """
  Request message for generating a URL to upgrade an existing managed Google Play Accounts enterprise to a managed Google domain.Note: This feature is not generally available.

  ## Attributes

  *   `adminEmail` (*type:* `String.t`, *default:* `nil`) - Optional. Email address used to prefill the admin field of the enterprise signup form as part of the upgrade process. This value is a hint only and can be altered by the user. Personal email addresses are not allowed. If allowedDomains is non-empty then this must belong to one of the allowedDomains.
  *   `allowedDomains` (*type:* `list(String.t)`, *default:* `nil`) - Optional. A list of domains that are permitted for the admin email. The IT admin cannot enter an email address with a domain name that is not in this list. Subdomains of domains in this list are not allowed but can be allowed by adding a second entry which has *. prefixed to the domain name (e.g. *.example.com). If the field is not present or is an empty list then the IT admin is free to use any valid domain name. Personal email domains are not allowed.
  """

  use GoogleApi.Gax.ModelBase

  @type t :: %__MODULE__{
          :adminEmail => String.t() | nil,
          :allowedDomains => list(String.t()) | nil
        }

  field(:adminEmail)
  field(:allowedDomains, type: :list)
end

defimpl Poison.Decoder,
  for: GoogleApi.AndroidManagement.V1.Model.GenerateEnterpriseUpgradeUrlRequest do
  def decode(value, options) do
    GoogleApi.AndroidManagement.V1.Model.GenerateEnterpriseUpgradeUrlRequest.decode(
      value,
      options
    )
  end
end

defimpl Poison.Encoder,
  for: GoogleApi.AndroidManagement.V1.Model.GenerateEnterpriseUpgradeUrlRequest do
  def encode(value, options) do
    GoogleApi.Gax.ModelBase.encode(value, options)
  end
end
